home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / AGNUS / SRC / SYSINFO / ICB.H < prev    next >
Encoding:
C/C++ Source or Header  |  1996-07-03  |  3.4 KB  |  91 lines

  1. #ifndef __ICB
  2. #define __ICB
  3.  
  4. #include    "RES.H"
  5.  
  6. typedef long LONG;
  7. typedef void VOID;
  8. typedef int WORD;
  9. #define UBYTE unsigned char
  10. #define UWORD unsigned int
  11. #define BYTE char
  12.  
  13. /* alle Zeiger auf Routinen erwarten ihre Parameter im */
  14. /* Turbo-/Pure-C-Format: WORD-Parameter in ihrer Reihenfolge in */
  15. /* den Registern d0-d2, Zeiger in den Registern a0-a1 */
  16. typedef struct
  17. {
  18.                                                 /* Versionsnummer in ASCII */
  19.     LONG    id;                                /* erst ab Version 1.37 */
  20.                                                 /* Zeiger auf Routine zur  */
  21.                                                 /* Auflösungsumschaltung */
  22.     VOID    (*p_chres)(RESOLUTION *res);
  23.     WORD    mode;                                /* Auflösungstyp: */
  24.                                                 /* 0: 16 Farben */
  25.                                                 /* 1: 2 Farben */
  26.                                                 /* 2: 256 Farben */
  27.                                                 /* 3: 32768 Farben */
  28.     WORD    bypl;                                /* Bytes pro Bildschirmzeile */
  29.     WORD    planes;                            /* Anzahl Bildschirmplanes: */
  30.                                                 /* 1, 4, 8 oder 16 */
  31.     WORD    colors;                            /* Anzahl Farben (Achtung: bei */
  32.                                                 /* 32768 negativ, da Inhalt $8000 */
  33.     WORD    hc;                                /* Hardcopymodus: */
  34.                                                 /* 0: 1 Bildpxl. = 1x1 Druckpxl. */
  35.                                                 /* 1: 1 Bildpxl. = 2x2 Druckpxl. */
  36.                                                 /* 2: 1 Bildpxl. = 4x4 Druckpxl. */
  37.     WORD    max_x, max_y;                    /* Bildschirmauflösung */
  38.                                                 /* für virtuelle Bildschirm- */
  39.                                                 /* verwaltung: */
  40.     WORD    rmn_x, rmx_x;                    /* physikalisch auf dem Monitor */
  41.     WORD    rmn_y, rmx_y;                    /* dargestellter Bereich */
  42.  
  43.     UBYTE    *scr_base;                        /* Zeiger auf physikalische */
  44.                                                 /* Bildschirmadresse */
  45.     UBYTE    *reg_base;                        /* Zeiger auf I/O-Adressen */
  46.     BYTE    name[36];                        /* Name der aktuellen Auflösung */
  47.  
  48.     LONG    bl_count;                        /* Zähler für Dunkelschaltung */
  49.                                                 /* Startwert für Zähler in */
  50.     LONG    bl_max;                            /* 1/200stel Sekunden */
  51.     WORD    bl_on;                            /* != 0: Bildschirm ist dunkel */
  52.     
  53.     WORD    card;                                /* Graphikkartentyp: */
  54.                                                 /* 0: max. 256 Farben, 64 Abst. */
  55.                                                 /* 2: max. 32k Farben, 256 Abst. */
  56.     UBYTE    speed_tab[12];                    /* Maus-Beschleunigungstabelle */
  57.  
  58.                                                 /* virtuelle Bildschirmverwaltung: */
  59.                                                 /* es wird getestet, ob der Punkt */
  60.                                                 /* (x;y) sich im dargestellten */
  61.                                                 /* Bildabschnitt befindet */
  62.                                                 /* falls nicht, wird der darge- */
  63.                                                 /* stellte Abschnitt so verschoben, */
  64.                                                 /* daß der Punkt gerade sichtbar */
  65.                                                 /* wird */
  66.     VOID    (*chng_vrt)(WORD x, WORD y);
  67.     WORD    boot_drv;                        /* Laufwerk, von dem der Imagine- */
  68.                                                 /* Treiber gestartet wurde */
  69.                                                 /* Hier befindet sich auch die */
  70.                                                 /* Auflösungsdatei (im AUTO-Ordner) */
  71.  
  72.     LONG    (*set_vec)(VOID);                /* Ausgabevektoren neu setzen */
  73.                                                 /* muß im Supervisormodus auf- */
  74.                                                 /* gerufen werden */
  75.  
  76.     VOID    *main_work;                        /* Zeiger auf 1. VDI-Wkst. */
  77.     WORD    (*handler)(WORD x, LONG y);/* Zeiger auf Funktionshandler */
  78.                                                 /* ebenfalls im Supervisormodus */
  79.                                                 /* aufrufen */
  80.     VOID    (*init_col)(VOID);            /* Zeiger auf Farbinitialisierung */
  81.     UWORD    scrn_cnt;                        /* Anzahl Bildschirme */
  82.     LONG    scrn_sze;                        /* Größe eines Bildschirms in Bytes */
  83.     VOID    *base;                            /* Adresse von Bildschirmseite 0 */
  84.     VOID    (*p_setscr)(VOID *adr);        /* Zeiger auf Routine, die */
  85.                                                 /* neue physikalische Bildschirm- */
  86.                                                 /* adresse setzt */
  87.     WORD    v_top, v_bottom,                /* Ränder für virt. Speicherverwaltung */
  88.             v_left, v_right;
  89. } ICB;
  90.  
  91. #endif